-- Do not manually edit this file, it was auto-generated by dillonkearns/elm-graphql
-- https://github.com/dillonkearns/elm-graphql


module Qore.Union.DatesetOption2Union exposing (..)

import Graphql.Internal.Builder.Argument as Argument exposing (Argument)
import Graphql.Internal.Builder.Object as Object
import Graphql.Internal.Encode as Encode exposing (Value)
import Graphql.Operation exposing (RootMutation, RootQuery, RootSubscription)
import Graphql.OptionalArgument exposing (OptionalArgument(..))
import Graphql.SelectionSet exposing (FragmentSelectionSet(..), SelectionSet(..))
import Json.Decode as Decode
import Qore.InputObject
import Qore.Interface
import Qore.Object
import Qore.Scalar
import Qore.ScalarCodecs
import Qore.Union


type alias Fragments decodesTo =
    { onDatesingle : SelectionSet decodesTo Qore.Object.Datesingle
    , onDaterange : SelectionSet decodesTo Qore.Object.Daterange
    }


{-| Build up a selection for this Union by passing in a Fragments record.
-}
fragments :
    Fragments decodesTo
    -> SelectionSet decodesTo Qore.Union.DatesetOption2Union
fragments selections =
    Object.exhuastiveFragmentSelection
        [ Object.buildFragment "datesingle" selections.onDatesingle
        , Object.buildFragment "daterange" selections.onDaterange
        ]


{-| Can be used to create a non-exhuastive set of fragments by using the record
update syntax to add `SelectionSet`s for the types you want to handle.
-}
maybeFragments : Fragments (Maybe decodesTo)
maybeFragments =
    { onDatesingle = Graphql.SelectionSet.empty |> Graphql.SelectionSet.map (\_ -> Nothing)
    , onDaterange = Graphql.SelectionSet.empty |> Graphql.SelectionSet.map (\_ -> Nothing)
    }
